
#ifndef WYFUN_H_
#define WYFUN_H_

extern void Rel2Abs(float delta_P[6], float pr_tip[6], float p_tool_d[6]);

extern void TPSCAL(const float tg[12], float travelpointseries_data[10][66], float tps[10][12], int TPS_size[1]);

extern void Tool2Arm(const float p_tool_d[6], float xtool, float ytool, float ztool, float p_tip_d[6]);

extern void TPS_catchline(float TPS_catchline_data[10][66]);
extern void TPS_catchline_R(float TPS_catchline_R_data[10][66]);

extern void TPS_clampToolInstall(float TPS_clampToolInstall_data[10][66]);
extern void TPS_clampToolInstall_R(float TPS_clampToolInstall_R_data[10][66]);

extern void TPS_connectline_L(float TPS_connectline_L_data[10][66]);
extern void TPS_connectline_R(float TPS_connectline_R_data[10][66]);

extern void TPS_connectline_L2(float TPS_connectline_L2_data[10][66]);
extern void TPS_connectline_R2(float TPS_connectline_R2_data[10][66]);

extern void TPS_disconnectline(float TPS_disconnectline_data[10][66]);
extern void TPS_disconnectline_R(float TPS_disconnectline_R_data[10][66]);

extern void TPS_cutline(float TPS_cutline_data[10][66]);
extern void TPS_cutline_R(float TPS_culine_R_data[10][66]);

extern void TPS_addClamp(float TPS_addClamp_data[10][66]);
extern void TPS_addClamp_R(float TPS_addClamp_R_data[10][66]);

extern void TPS_rmvClamp(float TPS_addClamp_data[10][66]);
extern void TPS_rmvClamp_R(float TPS_addClamp_R_data[10][66]);

extern void TPS_verifLivePart(float TPS_verifLivePart_data[10][66]);
extern void TPS_verifLivePart_R(float TPS_verifLivePart_R_data[10][66]);

extern void TPS_wireStripping(float TPS_wireStripping_data[10][66]);
extern void TPS_wireStripping_R(float TPS_wireStripping_R_data[10][66]);

extern void TPS_RESET(float TPS_RESET_data[10][66]);

extern void stepNumber(int stepNumber_data[10][10]);

extern void curvefit(float *x, float* y, int n, float p[2]);

void evaulatecurvefit(float *x, float* y, float xRange[2], float yRange[2], int n, float p[2], float R[1]);

extern void p_r_calaculation(const float Xcurve_z[2], const float Ycurve_z[2], const float Xcurve_y[2], const float Zcurve_y[2], float y_target, float z_target, float p_re2_z[3], float r_re2_z[3], float p_re2_y[3], float r_re2_y[3]);

extern void TPSGENR(float tg[30], int Num_mission, float TPS_data[10][22], float toolmass_L_data[10][4], float cc_L_data[10][12], float toolmass_R_data[10][4], float cc_R_data[10][12], float ftMode_L[10], float ftMode_R[10], float period_L[10][2], float period_R[10][2],int stepNum[1]);

#endif
